//  模拟实现lodash 中的 curry 方法

const _ = require('lodash')

const getNum = function (a, b, c) {
  return a + b + c
}

const curried = _.curry(getNum)

console.log(curried(1)(2, 4))

function curry(func) {
  return function curried(...args) {
    // 判断实参和形参的个数
    // 实参是arge的长度
    // 形参是func的参数长度
    console.log('args', args, 'lenght', func.length)
    if (args.length < func.length) {
      return function () {
        console.log('arguments', arguments)
        return curried(...args.concat(Array.from(arguments)))
      }
    }
    return func(...args)
  }
}

const currys = curry(getNum)
console.log(currys(1)(2)(3))

//总结:
// 1. 把多元的函数转化一元函数，可以组合使用函数
// 2.柯里化可以让我们
